The use of computers has become vital to the operation of many government, business, and military operations. Loss of computer availability can disrupt operations resulting in degraded services, loss of revenue, and even risk of human casualty.
For example, disruption of financial systems, electronic messaging, mobile communications, and internet sales sites can result in loss of revenue. Disruption of an industrial process control system or health care system may result in loss of life in addition to loss of revenue. Some applications can accommodate an occasional error or short delay but otherwise require high availability, continuous availability or fault tolerance of a computer system. Other applications, such as air traffic control and nuclear power generation, may incur a high cost in terms of human welfare and property destruction when computers are not available to perform the intended processing purpose.
The classifications of high availability, continuous availability and fault tolerance may be further defined in terms of recovery point objective and recovery time objective. Recovery point objective is a measure of the amount of data loss that a system can support. Recovery time objective is a measure of the allowable downtime for a computer system after a fault.
A fault tolerant system has a relatively short recovery time objective and a recovery point objective of zero such that no loss of data is experienced. A continuously available system likewise has a relatively short recovery time objective, however, the recovery point can be non-zero because a limited amount of data loss is tolerable. The “continuous availability” is from the perspective of the end-user.
One approach for providing continuous availability relies upon a proprietary operating system running on commercially available hardware. Another approach relies upon the use of a commercially available operating system running on proprietary hardware systems. One disadvantage of such approaches is that the application may need to be tailored to the proprietary operating system or the proprietary hardware. The use of proprietary hardware or operating system software tends to increase the cost of implementation particularly as the application is scaled to handle more users or a greater throughput.